<?xml version="1.0" encoding="utf-8"?>

<!--
 * Copyright (c) 2017 Qualcomm Technologies, Inc.
 * All Rights Reserved.
 * Confidential and Proprietary - Qualcomm Technologies, Inc.
-->

<!-- Supported XML tags with their fields.
 * Major tag supports OpcodeValue.
 * Minor tag supports OpcodeValue, Nodepath and Supported(Optional) fields.
 * By default, all the resources are assumed as supported.
 Supported field can be used to mark a resource as not supported.
 * All the interactive nodes, ondemand nodes and some nodes of sched major
 group which aren't being used are marked as Not supported by default and
 can be enabled by using the target specific config files. -->

<!-- For resources which update multiple nodes or which require speical
acquire/release funcitons, need to mention the keyword SPECIAL_NODE
in their node path field and accordingly their ApplyOts and ResetOpts
functions need to be defined in the code.-->

<!-- For adding a new resource, a new minor tag with all mandatory fields
need to be added just before the end of it's major group. -->

<ResourceConfigs>
    <PerfResources>

    <!-- display off major start -->
    <Major OpcodeValue="0x0" />
        <Minor OpcodeValue="0x0" Node="SPECIAL_NODE - display_off" />
    <!-- display off major end -->

    <!-- power collapse major start -->
    <Major OpcodeValue="0x1" />
        <Minor OpcodeValue="0x0" Node="/dev/cpu_dma_latency" />
        <Minor OpcodeValue="0x1" Node="/sys/module/lpm_levels/system/perf/perf-l2-pc/idle_enabled" />
        <Minor OpcodeValue="0x2" Node="/sys/module/lpm_levels/parameters/bias_hyst" />
        <Minor OpcodeValue="0x3" Node="/sys/module/lpm_levels/parameters/ref_stddev" />
        <Minor OpcodeValue="0x4" Node="/sys/module/lpm_levels/parameters/tmr_add" />
        <Minor OpcodeValue="0x5" Node="/sys/module/lpm_levels/parameters/lpm_ipi_prediction" Supported="no" />
    <!-- power collapse major end -->

    <!-- cpufreq major start -->
    <Major OpcodeValue="0x2" />
        <Minor OpcodeValue="0x0" Node="/sys/module/msm_performance/parameters/cpu_min_freq" />
        <Minor OpcodeValue="0x1" Node="/sys/module/msm_performance/parameters/cpu_max_freq" />
        <Minor OpcodeValue="0x2" Node="/sys/devices/system/cpu/cpufreq/policy4/walt/adaptive_low_freq" />
        <Minor OpcodeValue="0x3" Node="/sys/devices/system/cpu/cpufreq/policy4/walt/adaptive_high_freq" />
        <Minor OpcodeValue="0x4" Node="/sys/devices/system/cpu/cpu4/cpufreq/walt/up_rate_limit_us" />
    <!-- cpufreq major end -->

    <!-- sched major start -->
    <Major OpcodeValue="0x3" />
        <!--Sysfsnode paths may change basing on the target for minors 0x1, 0x4, 0x5, 0x9.
            So, for targets with different node paths than default, need to be specified
            in the target specific resource config xml file. -->
        <Minor OpcodeValue="0x0" Node="/proc/sys/kernel/sched_boost" />
        <Minor OpcodeValue="0x1" Node="/proc/sys/kernel/sched_prefer_idle" Supported="no" />
        <Minor OpcodeValue="0x2" Node="/proc/sys/kernel/sched_migration_cost_ns" />
        <Minor OpcodeValue="0x3" Node="/proc/sys/kernel/sched_small_task" />
        <Minor OpcodeValue="0x4" Node="/proc/sys/kernel/sched_mostly_idle_load" Supported="no" />
        <Minor OpcodeValue="0x5" Node="/proc/sys/kernel/sched_mostly_idle_nr_run" Supported="no" />
        <Minor OpcodeValue="0x6" Node="/proc/sys/kernel/sched_init_task_load" />
        <Minor OpcodeValue="0x7" Node="/proc/sys/kernel/sched_upmigrate" />
        <Minor OpcodeValue="0x8" Node="/proc/sys/kernel/sched_downmigrate" />
        <Minor OpcodeValue="0x9" Node="/proc/sys/kernel/sched_mostly_idle_freq" Supported="no" />
        <Minor OpcodeValue="0xA" Node="SPECIAL_NODE - sched_add_group" Supported="no" />
        <Minor OpcodeValue="0xB" Node="/proc/sys/kernel/sched_spill_nr_run" />
        <Minor OpcodeValue="0xC" Node="/sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost" />
        <Minor OpcodeValue="0xD" Node="/proc/sys/kernel/sched_restrict_cluster_spill" />
        <Minor OpcodeValue="0xE" Node="SPECIAL_NODE - sched_freq_add_group" Supported="no" />
        <Minor OpcodeValue="0xF" Node="/dev/cpuset/top-app/cpus" />
        <Minor OpcodeValue="0x10" Node="/dev/cpuset/foreground/cpus" />
        <Minor OpcodeValue="0x11" Node="/dev/cpuset/system-background/cpus" />
        <Minor OpcodeValue="0x12" Node="/dev/cpuset/background/cpus" />
        <Minor OpcodeValue="0x13" Node="/proc/sys/kernel/sched_freq_aggregate" />
        <Minor OpcodeValue="0x14" Node="/proc/sys/kernel/sched_enable_thread_grouping" />
        <Minor OpcodeValue="0x15" Node="/proc/sys/kernel/sched_group_upmigrate" />
        <Minor OpcodeValue="0x16" Node="/proc/sys/kernel/sched_group_downmigrate" />
        <!-- sched_freq_aggr_threshold perflock will have contention with sched_boost level 3,
        so disable this resource for the target which is going to use sched boost 3 level.-->
        <Minor OpcodeValue="0x17" Node="/proc/sys/kernel/sched_freq_aggregate_threshold" />
        <Minor OpcodeValue="0x18" Node="/dev/stune/top-app/schedtune.prefer_idle" />
        <Minor OpcodeValue="0x19" Node="/proc/sys/kernel/sched_initial_task_util" />
        <Minor OpcodeValue="0x1A" Node="/sys/devices/system/cpu/cpu0/sched_load_boost" />
        <Minor OpcodeValue="0x1B" Node="/proc/sys/kernel/sched_little_cluster_coloc_fmin_khz" />
        <Minor OpcodeValue="0x1C" Node="/dev/stune/top-app/schedtune.boost" />
        <Minor OpcodeValue="0x1D" Node="/proc/sys/kernel/sched_busy_hysteresis_enable_cpus" />
        <Minor OpcodeValue="0x1E" Node="/proc/sys/kernel/sched_min_task_util_for_colocation" />
        <Minor OpcodeValue="0x1F" Node="/proc/sys/kernel/sched_min_task_util_for_boost" />
        <Minor OpcodeValue="0x20" Node="/proc/%d/sched_boost" Supported="yes"/> <!-- sched_task_boost -->
        <Minor OpcodeValue="0x21" Node="/proc/sys/kernel/sched_user_hint" /> <!--sched_user_hint -->
        <Minor OpcodeValue="0x22" Node="/proc/sys/kernel/sched_task_unfilter_nr_windows" /> <!--sched_task_unfilter_nr_windows -->
        <Minor OpcodeValue="0x23" Node="/proc/sys/kernel/sched_coloc_downmigrate_ns" /> <!--sched_coloc_downmigrate_ns  -->
        <Minor OpcodeValue="0x24" Node="/proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus" />
        <Minor OpcodeValue="0x25" Node="/proc/sys/kernel/sched_coloc_busy_hyst_ns" />
        <Minor OpcodeValue="0x26" Node="/proc/sys/kernel/sched_window_stats_policy" />
        <Minor OpcodeValue="0x27" Node="/proc/sys/kernel/sched_many_wakeup_threshold" />
        <Minor OpcodeValue="0x28" Node="/proc/sys/kernel/sched_sync_hint_enable" />
        <Minor OpcodeValue="0x29" Node="/proc/sys/kernel/sched_ravg_window_nr_ticks" />
        <Minor OpcodeValue="0x2A" Node="/proc/sys/kernel/sched_prefer_spread" />
        <Minor OpcodeValue="0x2B" Node="/dev/cpuctl/top-app/cpu.uclamp.min" />
        <Minor OpcodeValue="0x2C" Node="/proc/%d/sched_boost" Supported="yes" /> <!-- enable sched_task_boost for top-app render thread-->
        <Minor OpcodeValue="0x2D" Node="/proc/%d/sched_boost" Supported="yes" /> <!-- disable sched_task_boost for top-app render thread-->
        <Minor OpcodeValue="0x2E" Node="/proc/sys/walt/sched_task_unfilter_period" />
        <Minor OpcodeValue="0x2F" Node="/proc/sys/walt/sched_conservative_pl" />
        <Minor OpcodeValue="0x30" Node="/proc/sys/walt/sched_coloc_busy_hyst_cpu_busy_pct" />
        <Minor OpcodeValue="0x31" Node="/proc/sys/walt/sched_coloc_busy_hyst_cpu_ns" />
        <Minor OpcodeValue="0x32" Node="/proc/sys/kernel/walt_rtg_cfs_boost_prio" />
        <Minor OpcodeValue="0x33" Node="/proc/sys/kernel/sched_force_lb_enable" Supported="yes" />
        <Minor OpcodeValue="0x34" Node="/proc/%d/sched_low_latency" Supported="yes" />
        <Minor OpcodeValue="0x35" Node="/proc/sys/kernel/sched_min_granularity_ns" />
        <Minor OpcodeValue="0x36" Node="/proc/sys/kernel/walt_low_latency_task_threshold" />
        <Minor OpcodeValue="0x37" Node="/dev/stune/foreground/schedtune.prefer_idle" />
        <Minor OpcodeValue="0x38" Node="/proc/sys/kernel/%s" Supported="no"/>
        <Minor OpcodeValue="0x39" Node="/dev/stune/top-app/schedtune.colocate" Supported="no" />
        <Minor OpcodeValue="0x3A" Node="/dev/cpuctl/top-app/cpu.uclamp.latency_sensitive" />
        <Minor OpcodeValue="0x3B" Node="/dev/cpuctl/foreground/cpu.uclamp.latency_sensitive" />
        <Minor OpcodeValue="0x3C" Node="/proc/%d/sched_wake_up_idle" />
        <Minor OpcodeValue="0x3D" Node="/proc/sys/kernel/%s" Supported="no"/>
        <Minor OpcodeValue="0x3E" Node="/proc/sys/walt/sched_util_busy_hyst_cpu_ns" />
        <Minor OpcodeValue="0x3F" Node="/proc/sys/walt/sched_min_task_util_for_uclamp" />
    <!-- sched major end -->

    <!-- core hotplug major start -->
    <Major OpcodeValue="0x4" />
        <Minor OpcodeValue="0x0" Node="SPECIAL_NODE - lock_min_cores" />
        <Minor OpcodeValue="0x1" Node="SPECIAL_NODE - lock_max_cores" />
        <Minor OpcodeValue="0x2" Node="/sys/devices/system/cpu/cpu0/core_ctl/enable" />
    <!-- core hotplug major end-->

    <!-- interactive major start -->
    <Major OpcodeValue="0x5" />
        <!-- For following minors node paths might change basing on GovInstanceType and
        Supported field might change basing on the type of CpufreqGov.-->
        <Minor OpcodeValue="0x0" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay" Supported="no" />
        <Minor OpcodeValue="0x1" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/boost" Supported="no" />
        <Minor OpcodeValue="0x2" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse" Supported="no" />
        <Minor OpcodeValue="0x3" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse_duration" Supported="no" />
        <Minor OpcodeValue="0x4" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load" Supported="no" />
        <Minor OpcodeValue="0x5" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq" Supported="no" />
        <Minor OpcodeValue="0x6" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy" Supported="no" />
        <Minor OpcodeValue="0x7" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time" Supported="no" />
        <Minor OpcodeValue="0x8" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads" Supported="no" />
        <Minor OpcodeValue="0x9" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate" Supported="no" />
        <Minor OpcodeValue="0xA" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_slack" Supported="no" />
        <Minor OpcodeValue="0xB" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis" Supported="no" />
        <Minor OpcodeValue="0xC" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load" Supported="no" />
        <Minor OpcodeValue="0xD" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif" Supported="no" />
        <Minor OpcodeValue="0xE" Node="/sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif" Supported="no" />
        <Minor OpcodeValue="0xF" Node="/sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq" />
        <Minor OpcodeValue="0x10" Node="/sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load" />
        <Minor OpcodeValue="0x11" Node="/sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl" />
        <Minor OpcodeValue="0x12" Node="/sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us" />
        <Minor OpcodeValue="0x13" Node="/sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq" />
        <Minor OpcodeValue="0x14" Node="/sys/devices/system/cpu/cpu0/cpufreq/walt/target_load_thresh" />
        <Minor OpcodeValue="0x15" Node="/sys/devices/system/cpu/cpu0/cpufreq/walt/target_load_shift" />
        <Minor OpcodeValue="0x16" Node="/sys/devices/system/cpu/cpu4/cpufreq/walt/hispeed_freq" />
        <Minor OpcodeValue="0x17" Node="/sys/devices/system/cpu/cpu0/cpufreq/walt/up_rate_limit_us" />
    <!-- interactive major end -->

    <!-- cpubw hwmon major start -->
    <Major OpcodeValue="0x6" />
        <!-- ALl the following minors might change based on target. -->
        <Minor OpcodeValue="0x0" Node="/sys/class/devfreq/soc:qcom,cpubw/min_freq" />
        <Minor OpcodeValue="0x1" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/decay_rate" />
        <Minor OpcodeValue="0x2" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0x3" Node="SPECIAL_NODE - cpubw_hwmon_hyst_opt" />
        <Minor OpcodeValue="0x4" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps" />
        <Minor OpcodeValue="0x5" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent" />
        <Minor OpcodeValue="0x6" Node="/sys/class/devfreq/soc:qcom,cpubw/max_freq" />
        <Minor OpcodeValue="0x7" Node="/sys/class/devfreq/soc:qcom,cpubw/polling_interval" />
        <Minor OpcodeValue="0x8" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms" />
        <Minor OpcodeValue="0x9" Node="/sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps" />
        <!--Here onwards are the path for new opcodes to mark CPU_LLCC_BW nodes.Upper ones
            of this major are marked as unsupported for the tergets using the new opcodes-->
        <Minor OpcodeValue="0xA" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq" />
        <Minor OpcodeValue="0xB" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/up_scale" />
        <Minor OpcodeValue="0xC" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/use_ab" />
        <Minor OpcodeValue="0xD" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0xE" Node="SPECIAL_NODE - llcbw_hwmon_hyst_opt" />
        <Minor OpcodeValue="0xF" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/sample_ms" />
        <Minor OpcodeValue="0x10" Node="/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/polling_interval" />
        <!--Here onwards are the path for new frequency opcodes for  CPU_LLCC_BW V2 nodes to support
             new values from kernel 5.10 onwards-->
        <Minor OpcodeValue="0x11" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/190b6400.qcom,bwmon-llcc/min_freq" />
        <Minor OpcodeValue="0x12" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/190b6400.qcom,bwmon-llcc/max_freq" />
        <Minor OpcodeValue="0x13" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/190b6400.qcom,bwmon-llcc/hyst_trigger_count" />
        <Minor OpcodeValue="0x14" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/soc:qcom,memlat:llcc:gold-compute/max_freq" />
        <Minor OpcodeValue="0x15" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/190b6400.qcom,bwmon-llcc/hist_memory" />
        <Minor OpcodeValue="0x16" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/190b6400.qcom,bwmon-llcc/hyst_length" />
    <!-- cpubw hwmon major end -->

    <!-- video major start -->
    <Major OpcodeValue="0x7" />
        <Minor OpcodeValue="0x0" Node="SPECIAL_NODE - handle_vid_encplay_hint" />
        <Minor OpcodeValue="0x1" Node="SPECIAL_NODE - handle_vid_decplay_hint" />
        <Minor OpcodeValue="0x2" Node="SPECIAL_NODE - handle_disp_hint" />
    <!-- video major end -->

    <!-- ksm major start -->
    <Major OpcodeValue="0x8" />
        <Minor OpcodeValue="0x0" Node="SPECIAL_NODE - disable_ksm" />
        <Minor OpcodeValue="0x1" Node="SPECIAL_NODE - set_ksm_param" />
    <!-- ksm major end -->

    <!-- ondemand major start -->
    <Major OpcodeValue="0x9" />
        <Minor OpcodeValue="0x0" Node="/sys/devices/system/cpu/cpufreq/ondemand/sampling_rate" Supported="no" />
        <Minor OpcodeValue="0x1" Node="/sys/devices/system/cpu/cpufreq/ondemand/io_is_busy" Supported="no" />
        <Minor OpcodeValue="0x2" Node="/sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor" Supported="no" />
        <Minor OpcodeValue="0x3" Node="/sys/devices/system/cpu/cpufreq/ondemand/sync_freq" Supported="no" />
        <Minor OpcodeValue="0x4" Node="/sys/devices/system/cpu/cpufreq/ondemand/optimal_freq" Supported="no" />
        <Minor OpcodeValue="0x5" Node="/sys/devices/system/cpu/cpufreq/ondemand/enable_stepup" Supported="no" />
        <Minor OpcodeValue="0x6" Node="/sys/devices/system/cpu/cpufreq/ondemand/max_intermediate_steps" Supported="no" />
        <Minor OpcodeValue="0x7" Node="/dev/cpuctl/cpu.notify_on_migrate" Supported="no" />
    <!-- ondemand major end -->

    <!-- gpu major start -->
    <Major OpcodeValue="0xA" />
        <Minor OpcodeValue="0x0" Node="/sys/class/kgsl/kgsl-3d0/default_pwrlevel" />
        <Minor OpcodeValue="0x1" Node="/sys/class/kgsl/kgsl-3d0/min_pwrlevel" />
        <Minor OpcodeValue="0x2" Node="/sys/class/kgsl/kgsl-3d0/max_pwrlevel" />
        <Minor OpcodeValue="0x3" Node="/sys/class/kgsl/kgsl-3d0/devfreq/min_freq" />
        <Minor OpcodeValue="0x4" Node="/sys/class/kgsl/kgsl-3d0/devfreq/max_freq" />
        <Minor OpcodeValue="0x5" Node="/sys/class/devfreq/soc:qcom,gpubw/min_freq" />
        <Minor OpcodeValue="0x6" Node="/sys/class/devfreq/soc:qcom,gpubw/max_freq" />
        <Minor OpcodeValue="0x7" Node="SPECIAL_NODE - gpu_disable_gpu_nap" />
        <Minor OpcodeValue="0x8" Node="/sys/class/kgsl/kgsl/proc/%d/state" />
        <Minor OpcodeValue="0x9" Node="/sys/class/kgsl/kgsl/proc/%d/state" />
        <Minor OpcodeValue="0xA" Node="/sys/class/kgsl/kgsl-3d0/devfreq/mod_percent" />
        <Minor OpcodeValue="0xB" Node="/sys/class/kgsl/kgsl-3d0/idle_timer" />
    <!-- gpu major end -->

    <!-- misc major start -->
    <Major OpcodeValue="0xB" />
        <Minor OpcodeValue="0x0" Node="SPECIAL_NODE - unsupported" />
        <Minor OpcodeValue="0x1" Node="SPECIAL_NODE - irq_balancer" />
        <Minor OpcodeValue="0x2" Node="/sys/module/cpu_boost/parameters/input_boost_freq" />
        <Minor OpcodeValue="0x3" Node="/proc/sys/vm/swap_ratio" />
        <Minor OpcodeValue="0x4" Node="StorageNode_path_is_figured_out_based_on_the_target_device" />
        <Minor OpcodeValue="0x5" Node="SPECIAL_NODE - dummy_or_keep_alive" />
        <Minor OpcodeValue="0x6" Node="/sys/module/process_reclaim/parameters/enable_process_reclaim" />
        <Minor OpcodeValue="0x7" Node="SPECIAL_NODE - disable_pasr" />
        <Minor OpcodeValue="0xC" Node="/proc/sys/walt/sched_pipeline" />
    <!-- misc major end -->

    <!-- llcbw hwmon major start -->
    <Major OpcodeValue="0xC" />
        <!-- ALl the following minors node path might change based on target. -->
        <Minor OpcodeValue="0x0" Node="/sys/class/devfreq/soc:qcom,llccbw/min_freq" />
        <Minor OpcodeValue="0x1" Node="/sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0x2" Node="SPECIAL_NODE - llcbw_hwmon_hyst_opt" />
        <Minor OpcodeValue="0x3" Node="/sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/sample_ms" />
        <!--Here onwards are the path for new opcodes to mark LLCC_DDR_BW nodes.Upper ones
            of this major are marked as unsupported for the tergets using the new opcodes-->
        <Minor OpcodeValue="0x4" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/min_freq" />
        <Minor OpcodeValue="0x5" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/up_scale" />
        <Minor OpcodeValue="0x6" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/max_freq" />
        <Minor OpcodeValue="0x7" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/decay_rate" />
        <Minor OpcodeValue="0x8" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0x9" Node="SPECIAL_NODE - cpubw_hwmon_hyst_opt" />
        <Minor OpcodeValue="0xA" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/low_power_ceil_mbps" />
        <Minor OpcodeValue="0xB" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/low_power_io_percent" />
        <Minor OpcodeValue="0xC" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/polling_interval" />
        <Minor OpcodeValue="0xD" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/sample_ms" />
        <Minor OpcodeValue="0xE" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/idle_mbps" />
        <!--Here onwards are the path for new frequency opcodes for LLCC_DDR_BW V2 nodes to support
            new values from kernel 5.10 onwards-->
        <Minor OpcodeValue="0xF" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/min_freq" />
        <Minor OpcodeValue="0x10" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/max_freq" />
        <Minor OpcodeValue="0x11" Node="/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/use_ab" />
        <Minor OpcodeValue="0x12" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/ab_scale" />
        <Minor OpcodeValue="0x13" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:gold-compute/max_freq" />
        <Minor OpcodeValue="0x14" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/hist_memory" />
        <Minor OpcodeValue="0x15" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/hyst_length" />
        <Minor OpcodeValue="0x16" Node="/sys/devices/system/cpu/bus_dcvs/DDR/19091000.qcom,bwmon-ddr/hyst_trigger_count" />

    <!-- llcbw hwmon major end -->

    <!-- memlat major start -->
    <Major OpcodeValue="0xD" />
        <!-- ALl the following minors node path might change based on target. -->
        <Minor OpcodeValue="0x0" Node="/sys/class/devfreq/soc:qcom,l3-cpu%d/min_freq" />
        <Minor OpcodeValue="0x1" Node="/sys/class/devfreq/soc:qcom,memlat-cpu0/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0x2" Node="/sys/class/devfreq/soc:qcom,memlat-cpu4/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0x3" Node="/sys/class/devfreq/soc:qcom,memlat-cpu0/mem_latency/stall_floor" />
        <Minor OpcodeValue="0x4" Node="/sys/class/devfreq/soc:qcom,memlat-cpu4/mem_latency/stall_floor" />
        <Minor OpcodeValue="0x5" Node="/sys/class/devfreq/soc:qcom,memlat-cpu0/min_freq" />
        <Minor OpcodeValue="0x6" Node="/sys/class/devfreq/soc:qcom,memlat-cpu4/min_freq" />
        <Minor OpcodeValue="0x7" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-llcc-lat/min_freq" />
        <Minor OpcodeValue="0x8" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-llcc-lat/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0x9" Node="/sys/class/devfreq/soc:qcom,cpu4-cpu-llcc-lat/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0xA" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-llcc-lat/mem_latency/stall_floor" />
        <Minor OpcodeValue="0xB" Node="/sys/class/devfreq/soc:qcom,cpu4-cpu-llcc-lat/mem_latency/stall_floor" />
        <Minor OpcodeValue="0xC" Node="/sys/class/devfreq/soc:qcom,cpu0-llcc-ddr-lat/min_freq" />
        <Minor OpcodeValue="0xD" Node="/sys/class/devfreq/soc:qcom,cpu0-llcc-ddr-lat/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0xE" Node="/sys/class/devfreq/soc:qcom,cpu4-llcc-ddr-lat/mem_latency/ratio_ceil" />
        <Minor OpcodeValue="0xF" Node="/sys/class/devfreq/soc:qcom,cpu0-llcc-ddr-lat/mem_latency/stall_floor" />
        <Minor OpcodeValue="0x10" Node="/sys/class/devfreq/soc:qcom,cpu4-llcc-ddr-lat/mem_latency/stall_floor" />
        <Minor OpcodeValue="0x11" Node="/sys/class/devfreq/18321000.qcom,devfreq-l3:qcom,cpu%d-cpu-l3-lat/max_freq" />
        <Minor OpcodeValue="0x12" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-ddr-latfloor/min_freq" />
        <Minor OpcodeValue="0x13" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-ddr-latfloor/max_freq" />
        <Minor OpcodeValue="0x14" Node="/sys/class/devfreq/soc:qcom,cpu0-cpu-llcc-lat/max_freq" />
        <Minor OpcodeValue="0x15" Node="/sys/class/devfreq/soc:qcom,cpu0-llcc-ddr-lat/max_freq" />
        <Minor OpcodeValue="0x16" Node="/sys/devices/system/cpu/bus_dcvs/L3/soc:qcom,memlat:l3:prime/min_freq" />
        <Minor OpcodeValue="0x17" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/soc:qcom,memlat:llcc:silver/min_freq" />
        <Minor OpcodeValue="0x18" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:silver/min_freq" />
        <Minor OpcodeValue="0x19" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:gold/freq_scale_pct" />
        <Minor OpcodeValue="0x1A" Node="/sys/devices/system/cpu/bus_dcvs/memlat_settings/sample_ms" />
        <Minor OpcodeValue="0x1B" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:gold-compute/max_freq" />
        <Minor OpcodeValue="0x1C" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/soc:qcom,memlat:llcc:gold-compute/max_freq" />
        <Minor OpcodeValue="0x1D" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:prime-latfloor/ipm_ceil" />
        <Minor OpcodeValue="0x1E" Node="/sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_high_freq" />
        <Minor OpcodeValue="0x1F" Node="/sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_low_freq" />
        <Minor OpcodeValue="0x20" Node="/sys/devices/system/cpu/bus_dcvs/L3/soc:qcom,memlat:l3:gold/min_freq" />
        <Minor OpcodeValue="0x21" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:prime/min_freq" />
        <Minor OpcodeValue="0x22" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:gold/min_freq" />
        <Minor OpcodeValue="0x23" Node="/sys/devices/system/cpu/bus_dcvs/LLCC/soc:qcom,memlat:llcc:gold/min_freq" />
        <Minor OpcodeValue="0x24" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:gold/spm_thres" />
        <Minor OpcodeValue="0x25" Node="/sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:prime/spm_thres" />
    <!-- memlat major end -->

    <!-- npu major start -->
    <Major OpcodeValue="0xE" />
        <!-- ALl the following minors node path might change based on target. -->
        <Minor OpcodeValue="0x0" Node="/sys/class/devfreq/soc:qcom,npu-npu-llcc-bw/bw_hwmon/sample_ms" />
        <Minor OpcodeValue="0x1" Node="/sys/class/devfreq/soc:qcom,npu-npu-llcc-bw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0x2" Node="SPECIAL_NODE - npu_llcbw_hwmon_hyst_opt" />
        <!--Here onwards are the path for new opcodes to mark NPU_LLCC_DDR_BW nodes.-->
        <Minor OpcodeValue="0x3" Node="/sys/class/devfreq/soc:qcom,npu-llcc-ddr-bw/bw_hwmon/sample_ms" />
        <Minor OpcodeValue="0x4" Node="/sys/class/devfreq/soc:qcom,npu-llcc-ddr-bw/bw_hwmon/io_percent" />
        <Minor OpcodeValue="0x5" Node="SPECIAL_NODE - npu_ddr_llcbw_hwmon_hyst_opt" />
    <!-- npu major end -->

    <!-- sched2 major start -->
    <Major OpcodeValue="0xF" />
        <Minor OpcodeValue="0x0" Node="/proc/sys/walt/sched_asymcap_boost" />
        <Minor OpcodeValue="0x1" Node="/dev/cpuset/camera-daemon/cpus" />
        <Minor OpcodeValue="0x2" Node="/dev/cpuset/camera-background/cpus" />
        <Minor OpcodeValue="0x3" Node="/dev/cpuctl/background/cpu.shares" />
        <Minor OpcodeValue="0x4" Node="/dev/cpuctl/camera-daemon/cpu.shares" />
        <Minor OpcodeValue="0x5" Node="/dev/cpuctl/camera-daemon/cpu.uclamp.min" />
        <Minor OpcodeValue="0x6" Node="/dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive" />
        <Minor OpcodeValue="0x7" Node="/dev/cpuctl/camera-daemon/cpu.uclamp.sched_boost_no_override" />
        <Minor OpcodeValue="0x8" Node="/dev/cpuctl/top-app/cpu.shares" />
    <!-- sched2 major end -->
    </PerfResources>
</ResourceConfigs>
